import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Bombas que siguen a los objetos de clase StarFox
 * 
 * @author Luis Guajardo Olvera
 * @author Daniel Romero Martí
 */
public class Bomba extends Enemigo
{
    private GreenfootImage [] arreglo;
    /**
     * Constructor de la clase Bomba
     * Recibe como parámetro la profundidad del escenario con la cual será creada
     */
    public Bomba(int dato)
    { 
        super.profundidad(8);
        super.profundidad(dato);
        arreglo = new GreenfootImage[10];
        for(int i=0;i<10;i++)
            arreglo[i] = new GreenfootImage("bomba"+i+".png");

    }

    /**
     * Método de actua
     */
    public void act()
    {
        super.act();

        this.desapareceBomba();
    }

    /**
     * Método que se llama cuando el objeto ha sido agregado al mundo
     */
    public void addedToWorld(World Tierra)
    {  
        setImage(arreglo[super.profundidad()]); 
    }

    /**
     * Método que hace que la bomba siga al objeto de la clase StarFox
     */
    public void ataca()
    { int x,y,mod;

        this.mueve();
        x= super.coordenadaXStarFox();
        y= super.coordenadaYStarFox();
        if(super.profundidad()<=4)   
            super.turnTowards(x,y);
        super.move(4);

    }

    /**
     * Metodo que aumenta el tamaño del objeto
     */
    public void mueve()
    {
        if(super.aumentaTam()==10 && super.profundidad() !=10)
        { 
            setImage(arreglo[super.profundidad()]);
            int prof = super.profundidad();
            super.profundidad(prof+1);
            super.aumentaTam(0);
        }
    }

    /**  
     *Metodo que checa si explota la bomba en la nave y la elimina del mundo
     */
    public void desapareceBomba()
    { 
        World mundoTierra;
        mundoTierra = getWorld();
        int prof = super.profundidad();
        java.util.List naves = mundoTierra.getObjects(StarFox.class);
        StarFox nave = (StarFox)naves.get(0);
        int starfoxProf;
        starfoxProf=nave.profundidad();
        if(super.aumentaTam() == 11)
            mundoTierra.removeObject(this);

        else if(nave !=null &&prof<= starfoxProf && prof<= starfoxProf-1 && this.intersects(nave)) 
        { 
            nave.disminuyeVida(1);
            mundoTierra.removeObject(this);
        }
    }
}
